import request from '@/utils/request';

// 权限配置类型定义
export interface PermissionItem {
  name: string;
  value: boolean;
  disable?: boolean; // 添加disable字段，用于标识权限是否可更改
}

export interface PermissionCategory {
  name: string;
  pageShow: boolean; // 添加pageShow字段，用于控制页面是否显示
  pageShowDisable?: boolean; // 添加pageShowDisable字段，用于标识页面显示是否可更改
  permissions: {
    [key: string]: PermissionItem;
  };
}

// 用户权限类型定义（用于获取）
export interface GetUserPermissionResult {
  user_id: number;
  permissions: {
    [categoryKey: string]: PermissionCategory;
  };
}

// 用户权限类型定义（用于更新）
export interface UpdateUserPermissionData {
  user_id: number;
  permissions: {
    [categoryKey: string]: PermissionCategory;
  };
}

// 获取用户权限
export const getUserPermissions = (user_id: number) => {
  return request.post<GetUserPermissionResult>('/permission/getUserPermissions', { user_id });
};

// 更新用户权限
export const updateUserPermissions = (data: UpdateUserPermissionData) => {
  return request.post('/permission/updateUserPermissions', data);
};